package com.bing.my.service;

import com.bing.common.config.Result;
import com.bing.my.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import io.jsonwebtoken.Claims;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author bing
 * @since 2021-09-30
 */
public interface UserService extends IService<User> {
    /**
    * 用户增加
    * @author Bing
    * @date 2021/09/30 16:27
     * @param user
    * @return com.bing.common.config.Result<?>
    */
    Result<?> insert(User user);
    /**
    *用户删除
    * @author Bing
    * @date 2021/09/30 16:27
     * @param id
    * @return com.bing.common.config.Result<?>
    */
    Result<?> deleteById(Integer id);
    /**
    *用户更新,根据id
    * @author Bing
    * @date 2021/09/30 16:27
     * @param user
    * @return com.bing.common.config.Result<?>
    */
    Result<?> update(User user);
    /**
    * 查找用户
    * @author Bing
    * @date 2021/10/01 21:22
     * @param user
    * @return com.bing.common.config.Result<?>
    */
    Result<?> selectOne(User user);
    /**
    * 检查token有效
    * @author Bing
    * @date 2021/10/03 08:29
     * @param claims
    * @return com.bing.common.config.Result<?>
    */
    Result<?> checkToken(Claims claims);

    /**
    * 退出登录
    * @author Bing
    * @date 2021/10/03 12:38
     * @param token
    * @return com.bing.common.config.Result<?>
    */
    Result<?> logout(String token);

    /**
    * 根据用户名查询user数据
    * @author Bing
    * @date 2021/10/06 19:52
     * @param username
    * @return com.bing.my.entity.User
    */
    User findUserByUsername(String username);


}
